【Moments】RTX3090 PCIe3.0 不同通道数量性能测试

您所在的位置:网站首页 显卡只能x8 换过主板 【Moments】RTX3090 PCIe3.0 不同通道数量性能测试

【Moments】RTX3090 PCIe3.0 不同通道数量性能测试

2023-11-04 04:45| 来源: 网络整理| 查看: 265

坑边闲话:快过年了,家里什么年货也没买,就剩一张 RTX3090 Vulcan OC,那么是插 PCIe 3.0 x8 好呢还是插 PCIe 3.0 x16 好呢?废话,有条件当然是插 PCIe 3.0 x16 咯~ 但是两者差别大吗?让我们一起来看看。

B 站竟然不支持 HEIC 格式上传?

作为一个 X299 的老用户,虽然我 PCIe 版本老,但是我通道数量多啊!M.2 扩展卡、U.2 扩展卡、显卡、万兆网卡、SAS-RAID卡任君选择。

然而,事情的真相是主板的 PCIe slot 插槽数量、带宽分配方式都决定,你不能随便插。就比如我这个某嘉的主板有四条 PCIe 插槽,从上到下分别是 

x16_A

x8_B(与X16_B共享带宽)

x16_B

x8_C

其中后缀为B的共享带宽,用 switch 芯片做切分,且 x16 的优先级更高。于是总带宽就是 16+16+8+(4+4两个M.2)=48 lane,正好全部利用到位。相邻插槽之间是两槽宽度。于是你庞大的 3090 最好是插在 x16_A 上,这样你的 3090 会挡住 x8_B,但是 x16_B会完整留出来,可以插 bifurcation 分叉卡扩展硬盘。

当然,在这种情况下,如果你想在 x8_B上插双口万兆网卡(x8)、在x16_B上插raid 卡(x8)就不行了,因为显卡挡住 x8_B了。所以只要用了三槽厚度的 3090,你就必须挡住一个插槽。那么你可能会问,把显卡插在X16_B上不好吗?当然不好,因为这样会挡住独立的 X8_C,浪费极大!

可怜的我当初以为某嘉的主板PCIe插槽和内存插槽挨太近导致无法把显卡插在x16_A上,于是我只能插在x8_B上。而今天我发现把电脑搬出来放平了,是能把3090塞进x16_A插槽的。

这就是NVidia RTX3090的智障之处了!背面12颗显存发热大,然后就得在背板上做散热,火神和MSI超龙还加了热管,这就导致背板厚度比以往显卡厚很多。这在X299X Aorus Master这种主板上就是灾难。

Z690 Maximus 也是这种糟糕的设计!万一内存马甲太长就凉凉。

看另一个某嘉主板:

型号是X299X Designare 10G,大家自己搜一下吧,看看内存槽和最上面的PCIe插槽的距离就行。某嘉还是得继续批评!刻不容缓。OK,那么我从X8换到X16之后,性能有提升吗?

看图:

PCie 3.0 x8PCIe 3.0 x16

画个图看一下对比:

不知道哔哩哔哩会不会压缩图片,看不清的话就去我动态里看高清大图吧!

可以看到Memory Read/Write确实翻倍了,这个不服不行。我也曾用类似的方法测试过雷电3显卡坞的吞吐水平,局限也就在这里。那如果你问我为啥不测测雷电3显卡坞+RTX3090呢?我只能说大可不必。(实际是我嫌麻烦~~)

另外可以看到在单精度、双精度、不同字长的整数做算术运算方面,x8和x16几乎没有区别,当然这也与Aida64的测试程序如何编写的有关。或许可以发一个指令给GPU,让它在一定范围内生成一些数字然后去并行计算,这样指令传送所用的带宽就很小,不同lanes的差异不明显。

最后,在AES256分组密码、SHA1哈希、Julia老师的单精度科学计算、Mandel双精度计算等需要大规模CPU参与的测试里,X16的优势就很明显了。写过CUDA程序的同学应该对此很清楚,哪些变量需要显式传递给GPU都需要在C++代码里指明,然后交给CUDA的编译器去做优化。如果 CPU 和 GPU 之间需要频繁传递大数组,那么 GPU-CPU的 带宽将成为计算的一大瓶颈。所以现在NV正在用自己牛逼的 vSwitch 技术取代 PCIe 做通信,原因就在于 PCIe 限制了 GPU 性能。

那么打游戏呢?老湿基并不喜欢打游戏,所以也没什么可以测试的。不过还是那句话,好不好得看代码怎么写。

M1 Max 牛就牛在内存这一块做的比较好。另外,统一内存指的是物理上通信代价差不多,并不是仅仅指内存、显存的进程虚地址空间统一编码。统一地址空间这件事在x86上早就有了。

OK,本期视频专栏就到这里了~

老湿马上就晋级LV6~



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3